﻿//using UnityEngine;
//using System.Collections;
//using System;
//using System.Collections.Generic;

//public class LoadManager
//{
//    static LoadManager instance;

//    public static LoadManager Instance
//    {
//        get
//        {
//            if (instance == null)
//                instance = new LoadManager();
//            return instance;
//        }
//    }

//    List<LoadVO> theLoadList = new List<LoadVO>();
//    LoadVO curLoadVO;
//    bool isLoading = false;

//    /// <summary>加载(队列)</summary>
//    /// <param name="loadName">加载文件名</param>
//    /// <param name="loadCrc">当加载本地文件时, 传入null</param>
//    /// <param name="priority">优先级, 越小越高</param>
//    /// <param name="callback"></param>
//    /// <returns></returns>
//    public LoadVO Load(string loadName, string loadCrc, int priority, Action<LoadingResult> callback)
//    {
//        LoadVO loadVO = new LoadVO(loadName, loadCrc, priority, callback);
//        InsertLoad(loadVO);
//        if (!isLoading)
//            loadNext();
//        return loadVO;
//    }

//    public void InsertLoad(LoadVO loadVO)
//    {
//        bool isIn = false;
//        if (theLoadList.Contains(loadVO))
//            theLoadList.Remove(loadVO);
//        for (int i = 0, length = theLoadList.Count; i < length; i++)
//        {
//            if (theLoadList[i].Priority >= loadVO.Priority)
//            {
//                theLoadList.Insert(i, loadVO);
//                isIn = true;
//                break;
//            }
//        }
//        if (!isIn)
//            theLoadList.Add(loadVO);
//    }

//    void loadNext()
//    {
//        if (theLoadList.Count >= 1)
//        {
//            isLoading = true;
//            curLoadVO = theLoadList[0];

//            if (curLoadVO.LoadCrc != null)
//            {
//                ResourceManager.Instance.LoadHttpResource(
//                    curLoadVO.LoadName, 
//                    curLoadVO.LoadCrc, 
//                    result => {
//                        onFBXLoaded(result, curLoadVO);
//                        theLoadList.Remove(curLoadVO);
//                        loadNext();
//                    });
//            }
//            else
//            {
//                ResourceManager.Instance.LoadResoure(
//                    curLoadVO.LoadName,
//                    result => {
//                        onFBXLoaded(result, curLoadVO);
//                        theLoadList.Remove(curLoadVO);
//                        loadNext();
//                    });
//            }


//        }
//        else
//        {
//            isLoading = false;
//        }
//    }

//    void onFBXLoaded(LoadingResult result, LoadVO loadVO)
//    {
//        loadVO.Callback(result);
//    }


//}

///// <summary>加载任务</summary>
//public class LoadVO
//{
//    public LoadingResult Result;
//    public string LoadName;
//    public string LoadCrc;//为null时, 加载本地
//    public Action<LoadingResult> Callback;
//    public int Priority;


//    public LoadVO(string loadName, string loadCrc, int priority, Action<LoadingResult> callback)
//    {
//        LoadName = loadName;
//        LoadCrc = loadCrc;
//        Priority = priority;
//        Callback = callback;
//    }
//}

